<?php namespace web\home\controller;
/** .-------------------------------------------------------------------
 * |  Software: [HDPHP framework]
 * |      Site: www.hdphp.com
 * |-------------------------------------------------------------------
 * |    Author: 向军 <2300071698@qq.com>
 * |    WeChat: aihoudun
 * | Copyright (c) 2012-2019, www.houdunwang.com. All Rights Reserved.
 * '-------------------------------------------------------------------*/
//	列表控制器
class Listpage extends Common{
	//首页
	public function index() {
//		分配标题信息
		View::with('titleData','blog教学列表页');
//		p($_GET);DIE;
		$cid=Q('get.cid',0,'intval');
		$tid=Q('get.tid',0,'intval');
//		注意列表页面，有2种请求方式
//		获取当前分类的子集id，当前分类本身
		$cateModel=new \system\model\Category;
//		获取所有分类
		$cateData=$cateModel->get();
//		获取当前请求的分类的子集id，，调用分类模型中的getson方法，注意将getson方法改为public修饰
		$cids=$cateModel->getSon($cateData,$cid);
//		把自己也压入
		$cids[]=$cid;
//		1.请求分类的所有文章数据列表
		if($cid){
			$headData=array(
				'type'=>'分类',
//				pluck取指定的字段内容
				'title'=>Db::table('category')->where('cid',$cid)->pluck('cname'),
//				当前请求的是分类中的指定分类，
//				将该分类和他子集的所有文章数量统计出来分配页面, 不包含在回收站中的所有文章
				'total'=>Db::table('article')->where('is_recycle',0)->whereIn('category_cid',$cids)->count(),
			);
//			p($headData);die;
//			获取数据，关联分类表，并且，不包含在回收站中的，存在于指定的子数组中的文章，按发布时间降序排序，获取数据
			$arcData=Db::table('article')->join('category','category_cid','=','cid')
			->where('is_recycle',0)
			->whereIn('category_cid',$cids)
			->orderBy('sendtime','DESC')
			->get();
						
//			p($arcData);die;
//			将标签数据压入得到的数组中
			foreach($arcData as $k=>$v){
				$arcData[$k]['tag']=Db::table('article_tag')
			->join('tag','tag_tid','=','tid')->field(array('tid','tname'))
			->where('article_aid',$v['aid'])->get();
			}
		}
		
		
//		2.请求标签所有文章数据
		if($tid){
//			1.头部
			$headData=array(
				'type'=>'标签',
//				pluck取指定的字段内容
				'title'=>Db::table('tag')->where('tid',$tid)->pluck('tname'),
//				当前请求的是分类中的指定分类，
//				将该分类和他子集的所有文章数量统计出来分配页面, 不包含在回收站中的所有文章
				'total'=>Db::table('article_tag')->join('article','article_aid','=','aid')->where('is_recycle',0)->where('tag_tid',$tid)->count(),
			);
//			p($headData);die;
//			通过文章标签中间表获取当前标签对应的所有文章的主键字段－－－》当前这个标签所对应的文章的主键
//			lists获取指定字段列返回一个一位数组
			$aids=Db::table('article_tag')->where('tag_tid',$tid)->lists('article_aid');
//			p($aids);die;
//			2.数据
			$arcData=Db::table('article')->join('category','category_cid','=','cid')
			->where('is_recycle',0)
			->whereIn('aid',$aids)
			->orderBy('sendtime','DESC')
			->get();
//			p($arcData);die;
//			将标签压入
			foreach($arcData as $k=>$v){
				$arcData[$k]['tag']=Db::table('article_tag')
			->join('tag','tag_tid','=','tid')->field(array('tid','tname'))
			->where('article_aid',$v['aid'])->get();
			}
		}
		View::with('headData',$headData);
		View::with('arcData',$arcData);
		// echo __ROOT__;die;
		// echo 'home';die;
		View::make();
	}
	
	
	
	
	
}